package com.blockmeta.bbs.minemodule.fragment;


import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;

import com.blockmeta.bbs.businesslibrary.base.fragment.BaseFragment;
import com.blockmeta.bbs.minemodule.R;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;

/**
 * @author airthor
 * @date 2019/12/10
 * 活动列表基类
 */
public abstract class BaseMyActiveRefreshFragment extends BaseFragment implements OnRefreshListener {
    private SmartRefreshLayout mSmartRefreshLayout;
    @Override
    public View setContentView(LayoutInflater inflater, ViewGroup container) {
        View rootView = inflater.inflate(R.layout.fragment_my_active_list_base, container, false);
        mSmartRefreshLayout = rootView.findViewById(R.id.fresh_view);
        mSmartRefreshLayout.setOnRefreshListener(this);
        //这部分区域属于头部固定区域，位于刷新控件之上，当下拉刷新时这部分不动
        FrameLayout fixedArea = rootView.findViewById(R.id.fl_fixed_area);
        View fixedView = setFixedView(inflater,fixedArea);
        if (fixedView!=null) {
            fixedArea.addView(fixedView);
        }
        //这部分区域在刷新控件之下，刷新时会移动
        FrameLayout contentArea = rootView.findViewById(R.id.fl_content_area);
        View content=setContentViewIn(inflater,contentArea);
        if (content!=null){
            contentArea.addView(content);
        }
        return rootView;
    }

    /**
     * 主要视图区域由于不可预测形式，所以由子类自行添加
     * @param contentArea 容器
     * @param inflater .
     * @return .
     */
    protected abstract View setContentViewIn(LayoutInflater inflater,FrameLayout contentArea);

    /**
     * 由于这部分可能不需要添加视图，用空方法来提供钩子，不需要的子类可以忽略此方法
     * @param fixedArea 容器
     * @param inflater .
     * @return .
     */
    protected View setFixedView(LayoutInflater inflater,FrameLayout fixedArea) {
        return null;
    }

    /**
     * 是否支持刷新
     * @param enable 。
     */
    public void setEnableRefresh(boolean enable){
        mSmartRefreshLayout.setEnableRefresh(enable);
    }

    /**
     * 停止刷新
     */
    public void finishRefresh(){
        if (mSmartRefreshLayout!=null&&mSmartRefreshLayout.isRefreshing()) {
            mSmartRefreshLayout.finishRefresh();
        }
    }
}
